import axios from 'axios'
import { getToken } from '~/utils/jwt'
import { getUserAgent } from '~/utils/userAgent'
import { Message } from 'iview'

// 创建axios对象，设置baseURL与最大等待时间（超时时间）
const service = axios.create({
  baseURL: 'http://1.15.155.117:8888',
  timeout: 20000 // 最大延迟--20秒
})

// 每次请求前的拦截
service.interceptors.request.use(
  config => {
    // 前台版本号
    config.headers['front-version'] = '1.0.0'
    // 设备类型，只做初步判断，pc端或移动端
    config.headers['device-type'] = getUserAgent() || ''
    // 带上jwt
    config.headers['token'] = getToken() || ''
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 获取响应时的拦截
service.interceptors.response.use(
  response => {
    const res = response.data
    // 全局统一配置判断请求信息
    if (res.code !== 200) {
      // return Promise.reject(new Error(res.message || 'Error'))
      return res.message
    } else {
      return res
    }
  },
  error => {
    Message.error('请求超时')
    return Promise.reject(error)
  }
)

export default service
